package com.example.string;

import java.util.Scanner;

/**
 * 目标：完成用户的登录案例
 */
public class StringTest4 {
    public static void main(String[] args) {
        // 需求：用户名是jack/123456,开发一个登录页面只有三次登入机会
        // 1.开发一个登录界面
        for (int i = 0; i < 3; i++) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请您输入登录名称：");
            String loginName = sc.next();
            System.out.println("请您输入登录密码：");
            String passWord = sc.next();

            // 5.开始调用登录方法,判断是否登录成功
            boolean rs = login(loginName, passWord);
            if (rs) {
                System.out.println("恭喜您,欢迎进入系统~~");
                break; // 跳出for循环,代表登录完成
            } else {
                System.out.println("登录名或者密码错误,请您确认~~");
            }
        }
    }

    /**
     * 2.开发一个登录方法,接收用户的登录名和密码,返回认证的结果
     *
     * @param loginName 登录名
     * @param passWord  密码
     * @return 返回true表示登录成功, false表示登录失败
     */
    public static boolean login(String loginName, String passWord) {
        // 3.准备一份系统正确的登录名和密码
        String okLoginName = "jack";
        String okPassWord = "123456";

        // 4.开始正式判断用户是否登录成功
        // 注意这里不能使用 == 去比较因为用户输入的内容不是使用双引号定义的,是存放在堆内存中的,而okLoginName是存放在常量池中的所以结果永远都是false
        /*if (okLoginName.equals(loginName) && okPassWord.equals(passWord)) {
            // 登录成功的
            return true;
        } else {
            return false;
        }*/
        return okLoginName.equals(loginName) && okPassWord.equals(passWord);
    }
}
